package main

import (
	"encoding/json"
	"html/template"
	"log"
	"net/http"
)

func index(w http.ResponseWriter, r *http.Request) {
	if r.Method == "GET" {
		//给他index之前获取下cookie的值，决定是否给这个页面
		cookie, err := r.Cookie("GLXT_SSID") //如何获取cookie值--
		if err != nil || cookie.Value == "" {

			http.Redirect(w, r, "/login", http.StatusFound) //没有cookie则把路径转到/login  ，即登录请求去。
			return
		}
		log.Println("get cookie:", cookie)
		log.Println("get index ....")
		t, err := template.ParseFiles("static/html/index.html")
		if err != nil {
			log.Println(err)
		}
		t.Execute(w, nil)
	}
}

func regis(w http.ResponseWriter, r *http.Request) {

	//---定义一个json的步骤----，在ajax回调哪儿用ret.Name就可以取值了。
	type myjson struct { //--定一个myjson数据结构
		//desc string
		Code int
	}
	//-->初始化结构体
	m := myjson{10}
	if r.Method == "GET" {
		log.Println("get regis ....")
		t, err := template.ParseFiles("static/html/regis.html")
		if err != nil {
			log.Println(err)
		}
		t.Execute(w, nil)
	} else if r.Method == "POST" {
		name := r.FormValue("name")
		user := r.FormValue("user")
		pass := r.FormValue("pass")
		sex := r.FormValue("sex")
		age := r.FormValue("age")
		address := r.FormValue("address")
		email := r.FormValue("email")
		phone := r.FormValue("phone")
		if user != "" && pass != "" {
			log.Println("hi,regis")
			log.Println(sex, age, address, email, phone)
			re_val := Db_insert(name, user, pass, sex, age, address, email, phone)

			if re_val == 2 {
				log.Println("注册成功", re_val)
				m = myjson{re_val}
				b, _ := json.Marshal(m)
				w.Write(b)
				return
			}
			log.Println("注册失败", re_val)
			m = myjson{re_val}
			b, _ := json.Marshal(m)
			w.Write(b)
		}
	}
}

func login(w http.ResponseWriter, r *http.Request) {

	//---定义一个json的步骤----，在ajax回调哪儿用ret.Name就可以取值了。
	type myjson struct { //--定一个myjson数据结构
		//desc string
		Code int64
	}
	//-->初始化结构体
	m := myjson{10}
	w.Header().Set("Access-Control-Allow-Origin", "*")
	w.Header().Add("Access-Control-Allow-Headers", "Content-Type")

	if r.Method == "GET" {
		log.Println("login...")
		t, _ := template.ParseFiles("static/html/login.html")
		t.Execute(w, nil)
	} else {
		log.Println("post...")
		log.Println("user:", r.FormValue("user"), "|pass:", r.FormValue("pass"))
		name := r.FormValue("user")
		pass := r.FormValue("pass")

		//---------设置cookie的方法-------
		if name != "" {
			re_val, des := Db_select(name, pass)
			log.Println("re_val is:", re_val, "| des is:", des)

			if re_val == 5 {
				//--一个json实例
				m = myjson{re_val}
			} else if re_val == 7 {
				cookie := http.Cookie{Name: "GLXT_SSID", Value: name + "..FUCK!YOU!PASSWORD!", Path: "/"}
				http.SetCookie(w, &cookie)
				m = myjson{re_val}
			} else if re_val == 6 {
				m = myjson{re_val}
			} else {
				m = myjson{re_val}
			}
		} else {
			http.Redirect(w, r, "/login", http.StatusFound)
			return
		}

		b, _ := json.Marshal(m) //--通过Marshal就可以得到一个json格式的b
		w.Write(b)
	}

}
